package com.googlecode.project4uz.demo;

import java.beans.*;
import java.io.*;
import org.openrdf.rio.*;

import com.googlecode.project4uz.encoder.*;

/**
 * Prezentacja funkcjonalnosci kodera.
 *
 * @author Daniel Kur
 */
public class RDFEncoderDemo
{
	/**
	 * Punkt startowy programu.
	 * @param args - nie przyjmuje argumentow z linii polecen!
	 * @throws FileNotFoundException 
	 */
	public static void main(final String[] args) throws FileNotFoundException
	{
		SimpleClassForSerialize scfs = new SimpleClassForSerialize();
		/*ClassForSerialize cfs = new ClassForSerialize();
		RefForSerialize ref = new RefForSerialize();
		cfs.klasaZewnetrzna = ref;*/
		
		RDFEncoder e = new RDFEncoder(RDFFormat.RDFXML, Serializer.PUBLIC, new BufferedOutputStream(new FileOutputStream("test.rdf")));
		e.setOwner(scfs);
		e.writeObject(scfs);
		/*e.writeObject(cfs);
		e.writeComment("ClassForSerialize");
		e.writeObject(ref);
		e.writeComment("RefForSerialize");
		
		e.writeExpression(new Expression(150.5, cfs, "liczbaRzeczywista", null));
		e.writeComment("Nadpisanie zmiennej 'liczbaRzeczywista' z obiektu cfs");
		
		//cfs.klasaZewnetrzna.znak='r';
		e.writeExpression(new Expression('d', cfs.klasaZewnetrzna, "znak", null));
		e.writeComment("Nadpisanie zmiennej 'znak' z obiektu klasaZewnetrzna w obiekcie cfs");
		//cfs.klasaZewnetrzna.znak='d';
		e.writeStatement(new Statement(cfs, "klasaZewnetrzna", null));
		e.writeComment("Nadpisanie obiektu 'klasaZewnetrzna' standardowa wartoscia");
		//cfs.klasaZewnetrzna.znak='r';
		
		e.writeExpression(new Expression('p', new RefForSerialize(), "znak", null));
		e.writeComment("Tworzy nowy obiekt typu RefForSerialize i nadaje zmiennej 'znak' wartosc");
		e.writeStatement(new Statement(new ClassForSerialize(), "klasaZewnetrzna", null));
		e.writeComment("Tworzy nowy obiekt typu RefForSerialize");*/
		e.close();
	}
}
